﻿using Microsoft.EntityFrameworkCore;
using Abp.Zero.EntityFrameworkCore;
using Choucius.Boilerplate9.Authorization.Roles;
using Choucius.Boilerplate9.Authorization.Users;
using Choucius.Boilerplate9.MultiTenancy;
using Choucius.Boilerplate9.ProductionLines;
using Choucius.Boilerplate9.WarehouseLocations;
using Choucius.Boilerplate9.PlasticContainers;
using Choucius.Boilerplate9.PlasticContainerLogs;
using Choucius.Boilerplate9.RubberFrames;
using Choucius.Boilerplate9.Devices;
using Choucius.Boilerplate9.RubberFrameLogs;
using Choucius.Boilerplate9.InboundPlasticContainerLogs;
using Choucius.Boilerplate9.OutboundPlasticContainerLogs;
using Choucius.Boilerplate9.InboundRubberFrameLogs;
using Choucius.Boilerplate9.OutboundRubberFrameLogs;
using Choucius.Boilerplate9.WorkStations;
using Choucius.Boilerplate9.OutboundTasks;
using Choucius.Boilerplate9.ProductContainerRelationships;
using Choucius.Boilerplate9.ProductionReports;

namespace Choucius.Boilerplate9.EntityFrameworkCore
{
    public class Boilerplate9DbContext : AbpZeroDbContext<Tenant, Role, User, Boilerplate9DbContext>
    {
        /* Define a DbSet for each entity of the application */
        
        public Boilerplate9DbContext(DbContextOptions<Boilerplate9DbContext> options)
            : base(options)
        {
        }

        //Add DbSet properties for your entities...
        public virtual DbSet<ProductionLine> ProductionLines { get; set; }

        public virtual DbSet<WorkStation> WorkStations { get; set; }

        public virtual DbSet<WarehouseLocation> WarehouseLocations { get; set; }

        public virtual DbSet<Device> Devices { get; set; }

        public virtual DbSet<PlasticContainer> PlasticContainers { get; set; }

        public virtual DbSet<PlasticContainerLog> PlasticContainerLogs { get; set; }

        public virtual DbSet<InboundPlasticContainerLog> InboundPlasticContainerLogs { get; set; }

        public virtual DbSet<OutboundPlasticContainerLog> OutboundPlasticContainerLogs { get; set; }

        public virtual DbSet<RubberFrame> RubberFrames { get; set; }

        public virtual DbSet<RubberFrameLog> RubberFrameLogs { get; set; }

        public virtual DbSet<InboundRubberFrameLog> InboundRubberFrameLogs { get; set; }

        public virtual DbSet<OutboundRubberFrameLog> OutboundRubberFrameLogs { get; set; }

        public virtual DbSet<OutboundTask> OutboundTasks { get; set; }

        public virtual DbSet<ProductionReport> ProductionReports { get; set; }

        public virtual DbSet<ProductContainerRelationship> ProductContainerRelationships { get; set; }
    }
}
